#include "libLUI_in.h"

int OpenKeyboardDevice( char *p_path_device_name , int path_device_name_bufsize )
{
	char		device_name[ 256 + 1 ] ;
	char		path_device_name[ 256 + 1 ] ;
	int		fd ;
	int		nret = 0 ;
	
	memset( device_name , 0x00 , sizeof(device_name) );
	nret = GetDeviceName( "keyboard" , device_name , sizeof(device_name) ) ;
	if( nret < 0 )
		return nret;
	memset( path_device_name , 0x00 , sizeof(path_device_name) );
	snprintf( path_device_name , sizeof(path_device_name) , "/dev/input/%s" , device_name );
	
	fd = open( path_device_name , O_RDONLY ) ;
	if( fd == -1 )
		return -4;
	
	if( p_path_device_name )
	{
		snprintf( p_path_device_name , path_device_name_bufsize , "%s" , path_device_name );
	}
	
	return fd;
}

void CloseKeyboardDevice( int fd )
{
	close( fd );
	return;
}

int ConvertRawKeycode( signed char *p_shift_flag , signed char *p_ctrl_flag , signed char *p_alt_flag , uint16_t raw_code , unsigned char is_pressed ) /*** Needs to be optimized ***/
{
	int	key_code ;
	
	if( raw_code == 0) key_code=(KEY_RESERVED<<8);
	else if(raw_code==1) key_code=(KEY_ESC<<8);
	else if(raw_code==2) { if((*p_shift_flag)==0) key_code='1'; else key_code='!'; }
	else if(raw_code==3) { if((*p_shift_flag)==0) key_code='2'; else key_code='@'; }
	else if(raw_code==4) { if((*p_shift_flag)==0) key_code='3'; else key_code='#'; }
	else if(raw_code==5) { if((*p_shift_flag)==0) key_code='4'; else key_code='$'; }
	else if(raw_code==6) { if((*p_shift_flag)==0) key_code='5'; else key_code='%'; }
	else if(raw_code==7) { if((*p_shift_flag)==0) key_code='6'; else key_code='^'; }
	else if(raw_code==8) { if((*p_shift_flag)==0) key_code='7'; else key_code='&'; }
	else if(raw_code==9) { if((*p_shift_flag)==0) key_code='8'; else key_code='*'; }
	else if(raw_code==10) { if((*p_shift_flag)==0) key_code='9'; else key_code='('; }
	else if(raw_code==11) { if((*p_shift_flag)==0) key_code='0'; else key_code=')'; }
	else if(raw_code==12) { if((*p_shift_flag)==0) key_code='-'; else key_code='_'; }
	else if(raw_code==13) { if((*p_shift_flag)==0) key_code='='; else key_code='+'; }
	else if(raw_code==14) key_code=(KEY_BACKSPACE<<8);
	else if(raw_code==15) key_code='\t';
	else if(raw_code==16) { if((*p_shift_flag)==0) key_code='q'; else key_code='Q'; }
	else if(raw_code==17) { if((*p_shift_flag)==0) key_code='w'; else key_code='W'; }
	else if(raw_code==18) { if((*p_shift_flag)==0) key_code='e'; else key_code='E'; }
	else if(raw_code==19) { if((*p_shift_flag)==0) key_code='r'; else key_code='R'; }
	else if(raw_code==20) { if((*p_shift_flag)==0) key_code='t'; else key_code='T'; }
	else if(raw_code==21) { if((*p_shift_flag)==0) key_code='y'; else key_code='Y'; }
	else if(raw_code==22) { if((*p_shift_flag)==0) key_code='u'; else key_code='U'; }
	else if(raw_code==23) { if((*p_shift_flag)==0) key_code='i'; else key_code='I'; }
	else if(raw_code==24) { if((*p_shift_flag)==0) key_code='o'; else key_code='O'; }
	else if(raw_code==25) { if((*p_shift_flag)==0) key_code='p'; else key_code='P'; }
	else if(raw_code==26) { if((*p_shift_flag)==0) key_code='['; else key_code='{'; }
	else if(raw_code==27) { if((*p_shift_flag)==0) key_code=']'; else key_code='}'; }
	else if(raw_code==28) { if((*p_shift_flag)==0) key_code='\n'; }
	else if(raw_code==29) { key_code=(KEY_LEFTCTRL<<8); if(is_pressed) (*p_ctrl_flag)=1; else (*p_ctrl_flag)=0; }
	else if(raw_code==30) { if((*p_shift_flag)==0) key_code='a'; else key_code='A'; }
	else if(raw_code==31) { if((*p_shift_flag)==0) key_code='s'; else key_code='S'; }
	else if(raw_code==32) { if((*p_shift_flag)==0) key_code='d'; else key_code='D'; }
	else if(raw_code==33) { if((*p_shift_flag)==0) key_code='f'; else key_code='F'; }
	else if(raw_code==34) { if((*p_shift_flag)==0) key_code='g'; else key_code='G'; }
	else if(raw_code==35) { if((*p_shift_flag)==0) key_code='h'; else key_code='H'; }
	else if(raw_code==36) { if((*p_shift_flag)==0) key_code='j'; else key_code='J'; }
	else if(raw_code==37) { if((*p_shift_flag)==0) key_code='k'; else key_code='K'; }
	else if(raw_code==38) { if((*p_shift_flag)==0) key_code='l'; else key_code='L'; }
	else if(raw_code==39) { if((*p_shift_flag)==0) key_code=';'; else key_code=':'; }
	else if(raw_code==40) { if((*p_shift_flag)==0) key_code='\''; else key_code='"'; }
	else if(raw_code==41) { if((*p_shift_flag)==0) key_code='`'; else key_code='~'; }
	else if(raw_code==42) { key_code=(KEY_LEFTSHIFT<<8); if(is_pressed) (*p_shift_flag)=1; else (*p_shift_flag)=0; }
	else if(raw_code==43) key_code=(KEY_BACKSLASH<<8);
	else if(raw_code==44) { if((*p_shift_flag)==0) key_code='z'; else key_code='Z'; }
	else if(raw_code==45) { if((*p_shift_flag)==0) key_code='x'; else key_code='X'; }
	else if(raw_code==46) { if((*p_shift_flag)==0) key_code='c'; else key_code='C'; }
	else if(raw_code==47) { if((*p_shift_flag)==0) key_code='v'; else key_code='V'; }
	else if(raw_code==48) { if((*p_shift_flag)==0) key_code='b'; else key_code='B'; }
	else if(raw_code==49) { if((*p_shift_flag)==0) key_code='n'; else key_code='N'; }
	else if(raw_code==50) { if((*p_shift_flag)==0) key_code='m'; else key_code='M'; }
	else if(raw_code==51) { if((*p_shift_flag)==0) key_code=','; else key_code='<'; }
	else if(raw_code==52) { if((*p_shift_flag)==0) key_code='.'; else key_code='>'; }
	else if(raw_code==53) { if((*p_shift_flag)==0) key_code='/'; else key_code='?'; }
	else if(raw_code==54) { key_code=(KEY_RIGHTSHIFT<<8); if(is_pressed) (*p_shift_flag)=1; else (*p_shift_flag)=0; }
	else if(raw_code==55) key_code=(KEY_KPASTERISK<<8);
	else if(raw_code==56) { key_code=(KEY_LEFTALT<<8); if(is_pressed) (*p_alt_flag)=1; else (*p_alt_flag)=0; }
	else if(raw_code==57) { if((*p_shift_flag)==0) key_code=' '; }
	else if(raw_code==58) key_code=(KEY_CAPSLOCK<<8);
	else if(raw_code==59) key_code=(KEY_F1<<8);
	else if(raw_code==60) key_code=(KEY_F2<<8);
	else if(raw_code==61) key_code=(KEY_F3<<8);
	else if(raw_code==62) key_code=(KEY_F4<<8);
	else if(raw_code==63) key_code=(KEY_F5<<8);
	else if(raw_code==64) key_code=(KEY_F6<<8);
	else if(raw_code==65) key_code=(KEY_F7<<8);
	else if(raw_code==66) key_code=(KEY_F8<<8);
	else if(raw_code==67) key_code=(KEY_F9<<8);
	else if(raw_code==68) key_code=(KEY_F10<<8);
	else if(raw_code==69) key_code=(KEY_NUMLOCK<<8);
	else if(raw_code==70) key_code=(KEY_SCROLLLOCK<<8);
	else if(raw_code==71) key_code=(KEY_KP7<<8);
	else if(raw_code==72) key_code=(KEY_KP8<<8);
	else if(raw_code==73) key_code=(KEY_KP9<<8);
	else if(raw_code==74) key_code=(KEY_KPMINUS<<8);
	else if(raw_code==75) key_code=(KEY_KP4<<8);
	else if(raw_code==76) key_code=(KEY_KP5<<8);
	else if(raw_code==77) key_code=(KEY_KP6<<8);
	else if(raw_code==78) key_code=(KEY_KPPLUS<<8);
	else if(raw_code==79) key_code=(KEY_KP1<<8);
	else if(raw_code==80) key_code=(KEY_KP2<<8);
	else if(raw_code==81) key_code=(KEY_KP3<<8);
	else if(raw_code==82) key_code=(KEY_KP0<<8);
	else if(raw_code==83) key_code=(KEY_KPDOT<<8);
	else if(raw_code==85) key_code=(KEY_ZENKAKUHANKAKU<<8);
	else if(raw_code==86) key_code=(KEY_102ND<<8);
	else if(raw_code==87) key_code=(KEY_F11<<8);
	else if(raw_code==88) key_code=(KEY_F12<<8);
	else if(raw_code==89) key_code=(KEY_RO<<8);
	else if(raw_code==90) key_code=(KEY_KATAKANA<<8);
	else if(raw_code==91) key_code=(KEY_HIRAGANA<<8);
	else if(raw_code==92) key_code=(KEY_HENKAN<<8);
	else if(raw_code==93) key_code=(KEY_KATAKANAHIRAGANA<<8);
	else if(raw_code==94) key_code=(KEY_MUHENKAN<<8);
	else if(raw_code==95) key_code=(KEY_KPJPCOMMA<<8);
	else if(raw_code==96) key_code=(KEY_KPENTER<<8);
	else if(raw_code==97) { key_code=(KEY_RIGHTCTRL<<8); if(is_pressed) (*p_ctrl_flag)=1; else (*p_ctrl_flag)=0; }
	else if(raw_code==98) key_code=(KEY_KPSLASH<<8);
	else if(raw_code==99) key_code=(KEY_SYSRQ<<8);
	else if(raw_code==100) { key_code=(KEY_RIGHTALT<<8); if(is_pressed) (*p_alt_flag)=1; else (*p_alt_flag)=0; }
	else if(raw_code==101) key_code=(KEY_LINEFEED<<8);
	else if(raw_code==102) key_code=(KEY_HOME<<8);
	else if(raw_code==103) key_code=(KEY_UP<<8);
	else if(raw_code==104) key_code=(KEY_PAGEUP<<8);
	else if(raw_code==105) key_code=(KEY_LEFT<<8);
	else if(raw_code==106) key_code=(KEY_RIGHT<<8);
	else if(raw_code==107) key_code=(KEY_END<<8);
	else if(raw_code==108) key_code=(KEY_DOWN<<8);
	else if(raw_code==109) key_code=(KEY_PAGEDOWN<<8);
	else if(raw_code==110) key_code=(KEY_INSERT<<8);
	else if(raw_code==111) key_code=(KEY_DELETE<<8);
	else if(raw_code==112) key_code=(KEY_MACRO<<8);
	else if(raw_code==113) key_code=(KEY_MUTE<<8);
	else if(raw_code==114) key_code=(KEY_VOLUMEDOWN<<8);
	else if(raw_code==115) key_code=(KEY_VOLUMEUP<<8);
	else if(raw_code==116) key_code=(KEY_POWER<<8);
	else if(raw_code==117) key_code=(KEY_KPEQUAL<<8);
	else if(raw_code==118) key_code=(KEY_KPPLUSMINUS<<8);
	else if(raw_code==119) key_code=(KEY_PAUSE<<8);
	else if(raw_code==120) key_code=(KEY_SCALE<<8);
	else if(raw_code==121) key_code=(KEY_KPCOMMA<<8);
	else if(raw_code==122) key_code=(KEY_HANGEUL<<8);
	else if(raw_code==123) key_code=(KEY_HANJA<<8);
	else if(raw_code==124) key_code=(KEY_YEN<<8);
	else if(raw_code==125) key_code=(KEY_LEFTMETA<<8);
	else if(raw_code==126) key_code=(KEY_RIGHTMETA<<8);
	else if(raw_code==127) key_code=(KEY_COMPOSE<<8);
	else if(raw_code==128) key_code=(KEY_STOP<<8);
	else if(raw_code==129) key_code=(KEY_AGAIN<<8);
	else if(raw_code==130) key_code=(KEY_PROPS<<8);
	else if(raw_code==131) key_code=(KEY_UNDO<<8);
	else if(raw_code==132) key_code=(KEY_FRONT<<8);
	else if(raw_code==133) key_code=(KEY_COPY<<8);
	else if(raw_code==134) key_code=(KEY_OPEN<<8);
	else if(raw_code==135) key_code=(KEY_PASTE<<8);
	else if(raw_code==136) key_code=(KEY_FIND<<8);
	else if(raw_code==137) key_code=(KEY_CUT<<8);
	else if(raw_code==138) key_code=(KEY_HELP<<8);
	else if(raw_code==139) key_code=(KEY_MENU<<8);
	else if(raw_code==140) key_code=(KEY_CALC<<8);
	else if(raw_code==141) key_code=(KEY_SETUP<<8);
	else if(raw_code==142) key_code=(KEY_SLEEP<<8);
	else if(raw_code==143) key_code=(KEY_WAKEUP<<8);
	else if(raw_code==144) key_code=(KEY_FILE<<8);
	else if(raw_code==145) key_code=(KEY_SENDFILE<<8);
	else if(raw_code==146) key_code=(KEY_DELETEFILE<<8);
	else if(raw_code==147) key_code=(KEY_XFER<<8);
	else if(raw_code==148) key_code=(KEY_PROG1<<8);
	else if(raw_code==149) key_code=(KEY_PROG2<<8);
	else if(raw_code==150) key_code=(KEY_WWW<<8);
	else if(raw_code==151) key_code=(KEY_MSDOS<<8);
	else if(raw_code==152) key_code=(KEY_COFFEE<<8);
	else if(raw_code==153) key_code=(KEY_DIRECTION<<8);
	else if(raw_code==154) key_code=(KEY_CYCLEWINDOWS<<8);
	else if(raw_code==155) key_code=(KEY_MAIL<<8);
	else if(raw_code==156) key_code=(KEY_BOOKMARKS<<8);
	else if(raw_code==157) key_code=(KEY_COMPUTER<<8);
	else if(raw_code==158) key_code=(KEY_BACK<<8);
	else if(raw_code==159) key_code=(KEY_FORWARD<<8);
	else if(raw_code==160) key_code=(KEY_CLOSECD<<8);
	else if(raw_code==161) key_code=(KEY_EJECTCD<<8);
	else if(raw_code==162) key_code=(KEY_EJECTCLOSECD<<8);
	else if(raw_code==163) key_code=(KEY_NEXTSONG<<8);
	else if(raw_code==164) key_code=(KEY_PLAYPAUSE<<8);
	else if(raw_code==165) key_code=(KEY_PREVIOUSSONG<<8);
	else if(raw_code==166) key_code=(KEY_STOPCD<<8);
	else if(raw_code==167) key_code=(KEY_RECORD<<8);
	else if(raw_code==168) key_code=(KEY_REWIND<<8);
	else if(raw_code==169) key_code=(KEY_PHONE<<8);
	else if(raw_code==170) key_code=(KEY_ISO<<8);
	else if(raw_code==171) key_code=(KEY_CONFIG<<8);
	else if(raw_code==172) key_code=(KEY_HOMEPAGE<<8);
	else if(raw_code==173) key_code=(KEY_REFRESH<<8);
	else if(raw_code==174) key_code=(KEY_EXIT<<8);
	else if(raw_code==175) key_code=(KEY_MOVE<<8);
	else if(raw_code==176) key_code=(KEY_EDIT<<8);
	else if(raw_code==177) key_code=(KEY_SCROLLUP<<8);
	else if(raw_code==178) key_code=(KEY_SCROLLDOWN<<8);
	else if(raw_code==179) key_code=(KEY_KPLEFTPAREN<<8);
	else if(raw_code==180) key_code=(KEY_KPRIGHTPAREN<<8);
	else if(raw_code==181) key_code=(KEY_NEW<<8);
	else if(raw_code==182) key_code=(KEY_REDO<<8);
	else if(raw_code==183) key_code=(KEY_F13<<8);
	else if(raw_code==184) key_code=(KEY_F14<<8);
	else if(raw_code==185) key_code=(KEY_F15<<8);
	else if(raw_code==186) key_code=(KEY_F16<<8);
	else if(raw_code==187) key_code=(KEY_F17<<8);
	else if(raw_code==188) key_code=(KEY_F18<<8);
	else if(raw_code==189) key_code=(KEY_F19<<8);
	else if(raw_code==190) key_code=(KEY_F20<<8);
	else if(raw_code==191) key_code=(KEY_F21<<8);
	else if(raw_code==192) key_code=(KEY_F22<<8);
	else if(raw_code==193) key_code=(KEY_F23<<8);
	else if(raw_code==194) key_code=(KEY_F24<<8);
	else if(raw_code==200) key_code=(KEY_PLAYCD<<8);
	else if(raw_code==201) key_code=(KEY_PAUSECD<<8);
	else if(raw_code==202) key_code=(KEY_PROG3<<8);
	else if(raw_code==203) key_code=(KEY_PROG4<<8);
	else if(raw_code==204) key_code=(KEY_DASHBOARD<<8);
	else if(raw_code==205) key_code=(KEY_SUSPEND<<8);
	else if(raw_code==206) key_code=(KEY_CLOSE<<8);
	else if(raw_code==207) key_code=(KEY_PLAY<<8);
	else if(raw_code==208) key_code=(KEY_FASTFORWARD<<8);
	else if(raw_code==209) key_code=(KEY_BASSBOOST<<8);
	else if(raw_code==210) key_code=(KEY_PRINT<<8);
	else if(raw_code==211) key_code=(KEY_HP<<8);
	else if(raw_code==212) key_code=(KEY_CAMERA<<8);
	else if(raw_code==213) key_code=(KEY_SOUND<<8);
	else if(raw_code==214) key_code=(KEY_QUESTION<<8);
	else if(raw_code==215) key_code=(KEY_EMAIL<<8);
	else if(raw_code==216) key_code=(KEY_CHAT<<8);
	else if(raw_code==217) key_code=(KEY_SEARCH<<8);
	else if(raw_code==218) key_code=(KEY_CONNECT<<8);
	else if(raw_code==219) key_code=(KEY_FINANCE<<8);
	else if(raw_code==220) key_code=(KEY_SPORT<<8);
	else if(raw_code==221) key_code=(KEY_SHOP<<8);
	else if(raw_code==222) key_code=(KEY_ALTERASE<<8);
	else if(raw_code==223) key_code=(KEY_CANCEL<<8);
	else if(raw_code==224) key_code=(KEY_BRIGHTNESSDOWN<<8);
	else if(raw_code==225) key_code=(KEY_BRIGHTNESSUP<<8);
	else if(raw_code==226) key_code=(KEY_MEDIA<<8);
	else if(raw_code==227) key_code=(KEY_SWITCHVIDEOMODE<<8);
	else if(raw_code==228) key_code=(KEY_KBDILLUMTOGGLE<<8);
	else if(raw_code==229) key_code=(KEY_KBDILLUMDOWN<<8);
	else if(raw_code==230) key_code=(KEY_KBDILLUMUP<<8);
	else if(raw_code==231) key_code=(KEY_SEND<<8);
	else if(raw_code==232) key_code=(KEY_REPLY<<8);
	else if(raw_code==233) key_code=(KEY_FORWARDMAIL<<8);
	else if(raw_code==234) key_code=(KEY_SAVE<<8);
	else if(raw_code==235) key_code=(KEY_DOCUMENTS<<8);
	else if(raw_code==236) key_code=(KEY_BATTERY<<8);
	else if(raw_code==237) key_code=(KEY_BLUETOOTH<<8);
	else if(raw_code==238) key_code=(KEY_WLAN<<8);
	else if(raw_code==239) key_code=(KEY_UWB<<8);
	else if(raw_code==240) key_code=(KEY_UNKNOWN<<8);
	else if(raw_code==241) key_code=(KEY_VIDEO_NEXT<<8);
	else if(raw_code==242) key_code=(KEY_VIDEO_PREV<<8);
	else if(raw_code==243) key_code=(KEY_BRIGHTNESS_CYCLE<<8);
	else if(raw_code==244) key_code=(KEY_BRIGHTNESS_ZERO<<8);
	else if(raw_code==245) key_code=(KEY_DISPLAY_OFF<<8);
	else if(raw_code==246) key_code=(KEY_WIMAX<<8);
	else if(raw_code==247) key_code=(KEY_RFKILL<<8);
	else if(raw_code==248) key_code=(KEY_MICMUTE<<8);
	else if(raw_code==0x160) key_code=(KEY_OK<<8);
	else if(raw_code==0x161) key_code=(KEY_SELECT<<8);
	else if(raw_code==0x162) key_code=(KEY_GOTO<<8);
	else if(raw_code==0x163) key_code=(KEY_CLEAR<<8);
	else if(raw_code==0x164) key_code=(KEY_POWER2<<8);
	else if(raw_code==0x165) key_code=(KEY_OPTION<<8);
	else if(raw_code==0x166) key_code=(KEY_INFO<<8);
	else if(raw_code==0x167) key_code=(KEY_TIME<<8);
	else if(raw_code==0x168) key_code=(KEY_VENDOR<<8);
	else if(raw_code==0x169) key_code=(KEY_ARCHIVE<<8);
	else if(raw_code==0x16a) key_code=(KEY_PROGRAM<<8);
	else if(raw_code==0x16b) key_code=(KEY_CHANNEL<<8);
	else if(raw_code==0x16c) key_code=(KEY_FAVORITES<<8);
	else if(raw_code==0x16d) key_code=(KEY_EPG<<8);
	else if(raw_code==0x16e) key_code=(KEY_PVR<<8);
	else if(raw_code==0x16f) key_code=(KEY_MHP<<8);
	else if(raw_code==0x170) key_code=(KEY_LANGUAGE<<8);
	else if(raw_code==0x171) key_code=(KEY_TITLE<<8);
	else if(raw_code==0x172) key_code=(KEY_SUBTITLE<<8);
	else if(raw_code==0x173) key_code=(KEY_ANGLE<<8);
	else if(raw_code==0x174) key_code=(KEY_ZOOM<<8);
	else if(raw_code==0x175) key_code=(KEY_MODE<<8);
	else if(raw_code==0x176) key_code=(KEY_KEYBOARD<<8);
	else if(raw_code==0x177) key_code=(KEY_SCREEN<<8);
	else if(raw_code==0x178) key_code=(KEY_PC<<8);
	else if(raw_code==0x179) key_code=(KEY_TV<<8);
	else if(raw_code==0x17a) key_code=(KEY_TV2<<8);
	else if(raw_code==0x17b) key_code=(KEY_VCR<<8);
	else if(raw_code==0x17c) key_code=(KEY_VCR2<<8);
	else if(raw_code==0x17d) key_code=(KEY_SAT<<8);
	else if(raw_code==0x17e) key_code=(KEY_SAT2<<8);
	else if(raw_code==0x17f) key_code=(KEY_CD<<8);
	else if(raw_code==0x180) key_code=(KEY_TAPE<<8);
	else if(raw_code==0x181) key_code=(KEY_RADIO<<8);
	else if(raw_code==0x182) key_code=(KEY_TUNER<<8);
	else if(raw_code==0x183) key_code=(KEY_PLAYER<<8);
	else if(raw_code==0x184) key_code=(KEY_TEXT<<8);
	else if(raw_code==0x185) key_code=(KEY_DVD<<8);
	else if(raw_code==0x186) key_code=(KEY_AUX<<8);
	else if(raw_code==0x187) key_code=(KEY_MP3<<8);
	else if(raw_code==0x188) key_code=(KEY_AUDIO<<8);
	else if(raw_code==0x189) key_code=(KEY_VIDEO<<8);
	else if(raw_code==0x18a) key_code=(KEY_DIRECTORY<<8);
	else if(raw_code==0x18b) key_code=(KEY_LIST<<8);
	else if(raw_code==0x18c) key_code=(KEY_MEMO<<8);
	else if(raw_code==0x18d) key_code=(KEY_CALENDAR<<8);
	else if(raw_code==0x18e) key_code=(KEY_RED<<8);
	else if(raw_code==0x18f) key_code=(KEY_GREEN<<8);
	else if(raw_code==0x190) key_code=(KEY_YELLOW<<8);
	else if(raw_code==0x191) key_code=(KEY_BLUE<<8);
	else if(raw_code==0x192) key_code=(KEY_CHANNELUP<<8);
	else if(raw_code==0x193) key_code=(KEY_CHANNELDOWN<<8);
	else if(raw_code==0x194) key_code=(KEY_FIRST<<8);
	else if(raw_code==0x195) key_code=(KEY_LAST<<8);
	else if(raw_code==0x196) key_code=(KEY_AB<<8);
	else if(raw_code==0x197) key_code=(KEY_NEXT<<8);
	else if(raw_code==0x198) key_code=(KEY_RESTART<<8);
	else if(raw_code==0x199) key_code=(KEY_SLOW<<8);
	else if(raw_code==0x19a) key_code=(KEY_SHUFFLE<<8);
	else if(raw_code==0x19b) key_code=(KEY_BREAK<<8);
	else if(raw_code==0x19c) key_code=(KEY_PREVIOUS<<8);
	else if(raw_code==0x19d) key_code=(KEY_DIGITS<<8);
	else if(raw_code==0x19e) key_code=(KEY_TEEN<<8);
	else if(raw_code==0x19f) key_code=(KEY_TWEN<<8);
	else if(raw_code==0x1a0) key_code=(KEY_VIDEOPHONE<<8);
	else if(raw_code==0x1a1) key_code=(KEY_GAMES<<8);
	else if(raw_code==0x1a2) key_code=(KEY_ZOOMIN<<8);
	else if(raw_code==0x1a3) key_code=(KEY_ZOOMOUT<<8);
	else if(raw_code==0x1a4) key_code=(KEY_ZOOMRESET<<8);
	else if(raw_code==0x1a5) key_code=(KEY_WORDPROCESSOR<<8);
	else if(raw_code==0x1a6) key_code=(KEY_EDITOR<<8);
	else if(raw_code==0x1a7) key_code=(KEY_SPREADSHEET<<8);
	else if(raw_code==0x1a8) key_code=(KEY_GRAPHICSEDITOR<<8);
	else if(raw_code==0x1a9) key_code=(KEY_PRESENTATION<<8);
	else if(raw_code==0x1aa) key_code=(KEY_DATABASE<<8);
	else if(raw_code==0x1ab) key_code=(KEY_NEWS<<8);
	else if(raw_code==0x1ac) key_code=(KEY_VOICEMAIL<<8);
	else if(raw_code==0x1ad) key_code=(KEY_ADDRESSBOOK<<8);
	else if(raw_code==0x1ae) key_code=(KEY_MESSENGER<<8);
	else if(raw_code==0x1af) key_code=(KEY_DISPLAYTOGGLE<<8);
	else if(raw_code==0x1b0) key_code=(KEY_SPELLCHECK<<8);
	else if(raw_code==0x1b1) key_code=(KEY_LOGOFF<<8);
	else if(raw_code==0x1b2) key_code=(KEY_DOLLAR<<8);
	else if(raw_code==0x1b3) key_code=(KEY_EURO<<8);
	else if(raw_code==0x1b4) key_code=(KEY_FRAMEBACK<<8);
	else if(raw_code==0x1b5) key_code=(KEY_FRAMEFORWARD<<8);
	else if(raw_code==0x1b6) key_code=(KEY_CONTEXT_MENU<<8);
	else if(raw_code==0x1b7) key_code=(KEY_MEDIA_REPEAT<<8);
	else if(raw_code==0x1b8) key_code=(KEY_10CHANNELSUP<<8);
	else if(raw_code==0x1b9) key_code=(KEY_10CHANNELSDOWN<<8);
	else if(raw_code==0x1ba) key_code=(KEY_IMAGES<<8);
	else if(raw_code==0x1c0) key_code=(KEY_DEL_EOL<<8);
	else if(raw_code==0x1c1) key_code=(KEY_DEL_EOS<<8);
	else if(raw_code==0x1c2) key_code=(KEY_INS_LINE<<8);
	else if(raw_code==0x1c3) key_code=(KEY_DEL_LINE<<8);
	else if(raw_code==0x1d0) key_code=(KEY_FN<<8);
	else if(raw_code==0x1d1) key_code=(KEY_FN_ESC<<8);
	else if(raw_code==0x1d2) key_code=(KEY_FN_F1<<8);
	else if(raw_code==0x1d3) key_code=(KEY_FN_F2<<8);
	else if(raw_code==0x1d4) key_code=(KEY_FN_F3<<8);
	else if(raw_code==0x1d5) key_code=(KEY_FN_F4<<8);
	else if(raw_code==0x1d6) key_code=(KEY_FN_F5<<8);
	else if(raw_code==0x1d7) key_code=(KEY_FN_F6<<8);
	else if(raw_code==0x1d8) key_code=(KEY_FN_F7<<8);
	else if(raw_code==0x1d9) key_code=(KEY_FN_F8<<8);
	else if(raw_code==0x1da) key_code=(KEY_FN_F9<<8);
	else if(raw_code==0x1db) key_code=(KEY_FN_F10<<8);
	else if(raw_code==0x1dc) key_code=(KEY_FN_F11<<8);
	else if(raw_code==0x1dd) key_code=(KEY_FN_F12<<8);
	else if(raw_code==0x1de) key_code=(KEY_FN_1<<8);
	else if(raw_code==0x1df) key_code=(KEY_FN_2<<8);
	else if(raw_code==0x1e0) key_code=(KEY_FN_D<<8);
	else if(raw_code==0x1e1) key_code=(KEY_FN_E<<8);
	else if(raw_code==0x1e2) key_code=(KEY_FN_F<<8);
	else if(raw_code==0x1e3) key_code=(KEY_FN_S<<8);
	else if(raw_code==0x1e4) key_code=(KEY_FN_B<<8);
	else if(raw_code==0x1f1) key_code=(KEY_BRL_DOT1<<8);
	else if(raw_code==0x1f2) key_code=(KEY_BRL_DOT2<<8);
	else if(raw_code==0x1f3) key_code=(KEY_BRL_DOT3<<8);
	else if(raw_code==0x1f4) key_code=(KEY_BRL_DOT4<<8);
	else if(raw_code==0x1f5) key_code=(KEY_BRL_DOT5<<8);
	else if(raw_code==0x1f6) key_code=(KEY_BRL_DOT6<<8);
	else if(raw_code==0x1f7) key_code=(KEY_BRL_DOT7<<8);
	else if(raw_code==0x1f8) key_code=(KEY_BRL_DOT8<<8);
	else if(raw_code==0x1f9) key_code=(KEY_BRL_DOT9<<8);
	else if(raw_code==0x1fa) key_code=(KEY_BRL_DOT10<<8);
	else if(raw_code==0x200) key_code=(KEY_NUMERIC_0<<8);
	else if(raw_code==0x201) key_code=(KEY_NUMERIC_1<<8);
	else if(raw_code==0x202) key_code=(KEY_NUMERIC_2<<8);
	else if(raw_code==0x203) key_code=(KEY_NUMERIC_3<<8);
	else if(raw_code==0x204) key_code=(KEY_NUMERIC_4<<8);
	else if(raw_code==0x205) key_code=(KEY_NUMERIC_5<<8);
	else if(raw_code==0x206) key_code=(KEY_NUMERIC_6<<8);
	else if(raw_code==0x207) key_code=(KEY_NUMERIC_7<<8);
	else if(raw_code==0x208) key_code=(KEY_NUMERIC_8<<8);
	else if(raw_code==0x209) key_code=(KEY_NUMERIC_9<<8);
	else if(raw_code==0x20a) key_code=(KEY_NUMERIC_STAR<<8);
	else if(raw_code==0x20b) key_code=(KEY_NUMERIC_POUND<<8);
	else if(raw_code==0x210) key_code=(KEY_CAMERA_FOCUS<<8);
	else if(raw_code==0x211) key_code=(KEY_WPS_BUTTON<<8);
	else if(raw_code==0x212) key_code=(KEY_TOUCHPAD_TOGGLE<<8);
	else if(raw_code==0x213) key_code=(KEY_TOUCHPAD_ON<<8);
	else if(raw_code==0x214) key_code=(KEY_TOUCHPAD_OFF<<8);
	else if(raw_code==0x215) key_code=(KEY_CAMERA_ZOOMIN<<8);
	else if(raw_code==0x216) key_code=(KEY_CAMERA_ZOOMOUT<<8);
	else if(raw_code==0x217) key_code=(KEY_CAMERA_UP<<8);
	else if(raw_code==0x218) key_code=(KEY_CAMERA_DOWN<<8);
	else if(raw_code==0x219) key_code=(KEY_CAMERA_LEFT<<8);
	else if(raw_code==0x21a) key_code=(KEY_CAMERA_RIGHT<<8);
	else if(raw_code==0x21b) key_code=(KEY_ATTENDANT_ON<<8);
	else if(raw_code==0x21c) key_code=(KEY_ATTENDANT_OFF<<8);
	else if(raw_code==0x21d) key_code=(KEY_ATTENDANT_TOGGLE<<8);
	else if(raw_code==0x21e) key_code=(KEY_LIGHTS_TOGGLE<<8);
	else if(raw_code==0x246) key_code=(KEY_VOICECOMMAND<<8);
	else if(raw_code==0x251) key_code=(KEY_BRIGHTNESS_MIN<<8);
	else key_code=0;
	
	return key_code;
}

